import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class RekeningWijzigenGUI extends JFrame implements ActionListener{
	
	private static final long serialVersionUID = 1L;
	
	Bank bank;
	Rekening rekening;
	JTextField nummer;
	JComboBox klant, rekeningType;
	JLabel message;
	JButton wijzig, cancel;
	
	public RekeningWijzigenGUI(Bank b, Rekening r){
		bank = b;
		rekening = r;
		Container cc = getContentPane();
		cc.setLayout(new FlowLayout());
		JPanel c = new JPanel();
		c.setLayout(new GridLayout(5,2));
		cc.add(c);
		
		nummer = new JTextField("" + r.getRekNr());
		klant = new JComboBox(b.alleKlanten());
		rekeningType = new JComboBox(b.alleRekeningTypes());
		wijzig = new JButton("Wijzig");
		cancel = new JButton("Cancel");
		message = new JLabel("");
		
		
		c.add(new JLabel("Nummer:"));
		c.add(nummer);
		c.add(new JLabel("Klant:"));
		c.add(klant);
		c.add(new JLabel("Rekeningtype:"));
		c.add(rekeningType);
		c.add(wijzig);
		c.add(cancel);
		c.add(message);
		
		wijzig.addActionListener(this);
		cancel.addActionListener(this);
		
		setSize(250, 400);
		setTitle("Rekening wijzigen");
	    setVisible(true);
	    setDefaultCloseOperation(EXIT_ON_CLOSE);
	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == wijzig){
			// voer wijzigingen uit
			int nr = Integer.parseInt(nummer.getText());
			String ki = (String) klant.getSelectedItem();
			HashMap hm = bank.klanten();
			Klant k = (Klant) hm.get(ki);
			RekeningType rt = (RekeningType) bank.rekeningTypes().get(bank.alleRekeningTypes().get(rekeningType.getSelectedIndex()));
			rekening.setRekeningHouder(k);
			rekening.setRekeningType(rt);
			rekening.setRekeningNummer(nr);
			
			message.setText("Rekening gewijzigd!");
		} else {
			// cancel is ingedrukt
			dispose();
		}
		
	}
}
